package com.ruoyi.system.api.mapper;

import com.alibaba.fastjson.JSONObject;
import com.ruoyi.system.api.domain.ServiceInstrument;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 服务派单涉及到的仪器信息 (数据来源于CC端主动调用，和服务派单主信息一起入库)Mapper接口
 * 
 * @author shihx
 * @date 2020-03-05
 */
public interface ServiceInstrumentMapper 
{
    /**
     * 查询服务派单涉及到的仪器信息 (数据来源于CC端主动调用，和服务派单主信息一起入库)
     * 
     * @param id 服务派单涉及到的仪器信息 (数据来源于CC端主动调用，和服务派单主信息一起入库)ID
     * @return 服务派单涉及到的仪器信息 (数据来源于CC端主动调用，和服务派单主信息一起入库)
     */
    public ServiceInstrument selectServiceInstrumentById(Long id);

    /**
     * 查询服务派单涉及到的仪器信息 (数据来源于CC端主动调用，和服务派单主信息一起入库)列表
     * 
     * @param serviceInstrument 服务派单涉及到的仪器信息 (数据来源于CC端主动调用，和服务派单主信息一起入库)
     * @return 服务派单涉及到的仪器信息 (数据来源于CC端主动调用，和服务派单主信息一起入库)集合
     */
    public List<ServiceInstrument> selectServiceInstrumentList(ServiceInstrument serviceInstrument);

    /**
     * 新增服务派单涉及到的仪器信息 (数据来源于CC端主动调用，和服务派单主信息一起入库)
     * 
     * @param serviceInstrument 服务派单涉及到的仪器信息 (数据来源于CC端主动调用，和服务派单主信息一起入库)
     * @return 结果
     */
    public int insertServiceInstrument(ServiceInstrument serviceInstrument);

    /**
     * 修改服务派单涉及到的仪器信息 (数据来源于CC端主动调用，和服务派单主信息一起入库)
     * 
     * @param serviceInstrument 服务派单涉及到的仪器信息 (数据来源于CC端主动调用，和服务派单主信息一起入库)
     * @return 结果
     */
    public int updateServiceInstrument(ServiceInstrument serviceInstrument);

    /**
     * 删除服务派单涉及到的仪器信息 (数据来源于CC端主动调用，和服务派单主信息一起入库)
     * 
     * @param id 服务派单涉及到的仪器信息 (数据来源于CC端主动调用，和服务派单主信息一起入库)ID
     * @return 结果
     */
    public int deleteServiceInstrumentById(Long id);

    /**
     * 批量删除服务派单涉及到的仪器信息 (数据来源于CC端主动调用，和服务派单主信息一起入库)
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteServiceInstrumentByIds(String[] ids);

    /**
     * 根据服务单号查询仪器
     * @methodName: getInstrumentByServiceNo
     * @description: TODO
     * @param params
     * @return: com.ruoyi.system.api.ResponseWithData<?>
     * @author: wlf
     * @date: 2020/3/28 12:04
     **/
    List<JSONObject> getInstrumentByServiceNo(Map<String, Object> params);

    public ServiceInstrument selectServiceInstrumentByServiceNoticeId(@Param("serviceNoticeId") Long serviceNoticeId);

    public int updateSyncServiceInstrument(ServiceInstrument serviceInstrument);
}
